Skip to content

ci: run smoke tests across a python x torch version matrix#32

Open
guru-desh wants to merge 4 commits into
apple:mainfrom
guru-desh:smoke-test-on-different-torch-versions
Open

ci: run smoke tests across a python x torch version matrix#32
guru-desh wants to merge 4 commits into
apple:mainfrom
guru-desh:smoke-test-on-different-torch-versions

Conversation

@guru-desh

Copy link
Copy Markdown
Contributor

Description

Smoke tests previously ran on one implicit torch version (whatever pyproject.toml's unpinned bound resolved to) across all supported python versions. Add torch_2_8/2_9/2_10/2_11 dependency groups (build-matched torchao/torchvision per pytorch/ao issue 2919) and a matrix.torch_group axis on the test-smoke CI job so each of the 4 torch minor versions is smoke tested independently, still covering all 3 python versions per job via the existing nox session.

Adding these new smoke tests doesn't change the total CI time. Because provisioning is fast and we have more Linux machines, each test-smoke run takes 6 minutes. make test-tutorial takes 11 minutes, so stage 1 CI will be max(test-smoke-torch-2.8, test-smoke-2.9, ..., test-tutorials). Since test-tutorials is 11 minutes, stage 1 CI takes 11 minutes, and adding more test-smoke wouldn't affect total CI time.

Smoke tests previously ran on one implicit torch version (whatever
pyproject.toml's unpinned bound resolved to) across all supported
python versions. Add torch_2_8/2_9/2_10/2_11 dependency groups
(build-matched torchao/torchvision per pytorch/ao issue 2919) and a
matrix.torch_group axis on the test-smoke CI job so each of the 4
torch minor versions is smoke tested independently, still covering
all 3 python versions per job via the existing nox session.

lowest_tested_torch/highest_tested_torch are renamed to torch_2_8/
torch_2_11 for a consistent naming scheme; the linux-tests/macos-tests
full-suite jobs and their Makefile targets are unchanged.
setup_env.sh's group discovery used grep -E '^[a-z_-]+ = \[', which
excludes digits and made torch_2_8/2_9/2_10/2_11 invisible to
validate_groups — breaking test-highest-pytorch/test-lowest-pytorch
with 'Unknown dependency group', caught by the fork CI run.
@guru-desh
guru-desh requested review from aseemw and dengqiaoyu July 10, 2026 22:46
@guru-desh guru-desh added the enhancement New feature or request label Jul 10, 2026
@guru-desh
guru-desh marked this pull request as ready for review July 10, 2026 22:47
setup_env.sh now reads TORCH_GROUP directly and folds it into every
sync it runs, so make env/test/test-fast/docs/etc. all pin torch
instead of floating on whatever pyproject.toml's plain bound resolves
to. test-highest-pytorch/test-lowest-pytorch/env-highest-torch lock
their group via an inline `export TORCH_GROUP=... &&` at the top of
the recipe (rather than a hardcoded --with-torch_2_X flag), so their
name stays a promise regardless of a command-line override — verified
that GNU Make's own `override` directive achieves the same lock but
trips up the mbake Makefile formatter's duplicate-target detector,
which doesn't recognize that syntax.

--with-torch_2_X stays as a guarded alternate path for direct,
non-Make invocations of setup_env.sh; a guard now errors clearly if it
disagrees with an explicitly-set TORCH_GROUP instead of surfacing a
raw uv conflicting-groups resolver error.
…ORCH_GROUP

Now that the Makefile exports TORCH_GROUP unconditionally, the
smoke-test-specific SMOKE_TEST_TORCH_GROUP env var was redundant
indirection. ci/nox/noxfile.py reads TORCH_GROUP directly, and
`make test-smoke` no longer needs to translate the Makefile variable
into a differently-named env var for the nox subprocess.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants